home *** CD-ROM | disk | FTP | other *** search
/ Champak 26 (Anniversary Edition) / Volume 26 [Anniversary Edition] - JOGO DISK .iso / DEPOSITO / REmovido / Puzzle / yeti.swf / scripts / DoInitAction.as next >
Text File  |  2006-06-07  |  18KB  |  695 lines

  1. function soundOff()
  2. {
  3.    mc_sloop.gotoAndStop(3);
  4.    stopSoundFlag = true;
  5. }
  6. function soundOn()
  7. {
  8.    mc_sloop.gotoAndStop(2);
  9.    stopSoundFlag = false;
  10. }
  11. function new_game_pressed()
  12. {
  13.    this.gotoAndStop("menu");
  14. }
  15. function how_to_play_pressed()
  16. {
  17.    this.gotoAndStop("rules");
  18. }
  19. function more_pressed()
  20. {
  21.    getUrl("http://www.justfreegames.com?WT.mc_id=FlashYetiBubbles", "_blank");
  22. }
  23. function back_pressed()
  24. {
  25.    this.gotoAndStop("main");
  26. }
  27. function arcade_mode_pressed()
  28. {
  29.    arcadeGame = true;
  30.    gameStart();
  31. }
  32. function classic_mode_pressed()
  33. {
  34.    arcadeGame = false;
  35.    gameStart();
  36. }
  37. function inMenuFirst()
  38. {
  39.    mc_sloop.gotoAndStop(2);
  40. }
  41. function gameStart()
  42. {
  43.    level = 0;
  44.    scores = 0;
  45.    nextLevel();
  46. }
  47. function nextLevel()
  48. {
  49.    level++;
  50.    this.gotoAndStop("reset");
  51.    this.gotoAndStop("game");
  52. }
  53. function newGame()
  54. {
  55.    this.gotoAndStop("main");
  56. }
  57. function playSnd(lib_snd)
  58. {
  59.    s = new Sound(this);
  60.    s.attachSound(lib_snd);
  61.    s.start();
  62. }
  63. function initLevel()
  64. {
  65.    txtLevel = level;
  66.    txtScores = scores;
  67.    lastTimer = getTimer();
  68.    if(arcadeGame)
  69.    {
  70.       mc_grid.init(levARowCount[level - 1],levColorCount[level - 1],levBonusCount[level - 1],mc_fall,mc_pusher,mc_trace);
  71.       mc_ind.init(levAScores[level - 1]);
  72.       levelSpeed = 1.6 + 0.05 * (level - 1);
  73.    }
  74.    else
  75.    {
  76.       mc_grid.init(levCRowCount[level - 1],levColorCount[level - 1],levBonusCount[level - 1],mc_fall,mc_pusher,mc_trace);
  77.       mc_ind.init(1);
  78.       increaseK = levIncreaseK[level - 1];
  79.    }
  80.    prevBonusNum = -1;
  81.    shotBonusCount = _root.myRandom(maxShotBonusNum) + 1;
  82.    generateNextBall();
  83.    generateNextBall();
  84.    mc_move_ball.mc_grid = mc_grid;
  85.    var _loc2_ = undefined;
  86.    var _loc1_ = undefined;
  87.    _loc2_ = 0;
  88.    while(_loc2_ < sightBallCount)
  89.    {
  90.       _loc1_ = mc_trace.attachMovie("lib_trace","" + _loc2_,_loc2_);
  91.       _loc1_._xscale = _loc1_._yscale = 85;
  92.       _loc1_._alpha = 75;
  93.       _loc1_._visible = false;
  94.       _loc2_ = _loc2_ + 1;
  95.    }
  96.    _loc1_ = mc_trace.attachMovie("lib_trace2","" + sightBallCount,sightBallCount);
  97.    _loc1_._xscale = _loc1_._yscale = 115;
  98.    _loc1_._alpha = 75;
  99.    _loc1_._visible = false;
  100.    drawSight();
  101.    redrawSight = true;
  102.    winFlag = false;
  103.    overFlag = false;
  104.    if(timeCounter == null)
  105.    {
  106.       timeCounter = new CTimeCounter();
  107.       back1 = new CBackground();
  108.       back2 = new CBackground();
  109.       back3 = new CBackground();
  110.    }
  111.    back1.init(mc_water.mc1,10);
  112.    back2.init(mc_water.mc2,40);
  113.    back3.init(mc_water.mc3,20);
  114.    mc_msg.gotoAndStop("stEmpty");
  115.    resetSounds();
  116.    gameState = 0;
  117. }
  118. function processGame()
  119. {
  120.    var newTimer;
  121.    var dTime;
  122.    var _loc1_ = undefined;
  123.    var n;
  124.    newTimer = getTimer();
  125.    dTime = newTimer - lastTimer;
  126.    txtFps = 1 / (dTime / 1000);
  127.    lastTimer = newTimer;
  128.    back1.process(dTime);
  129.    back2.process(dTime);
  130.    back3.process(dTime);
  131.    mc_pinguin.process(dTime);
  132.    mc_yeti.process(dTime);
  133.    mc_gun.processKeys(dTime);
  134.    if(gameState == 1)
  135.    {
  136.       if(mc_msg.a1._visible == false)
  137.       {
  138.          n = levColorCount[level];
  139.          _loc1_ = 1;
  140.          while(_loc1_ <= n)
  141.          {
  142.             mc_msg["a" + _loc1_].setColor(_loc1_);
  143.             mc_msg["a" + _loc1_]._visible = true;
  144.             _loc1_ = _loc1_ + 1;
  145.          }
  146.          n = levBonusCount[level];
  147.          _loc1_ = 1;
  148.          while(_loc1_ <= n)
  149.          {
  150.             mc_msg["b" + _loc1_].setColor(_loc1_);
  151.             mc_msg["b" + _loc1_].setBonus(_loc1_,2);
  152.             mc_msg["b" + _loc1_]._visible = true;
  153.             _loc1_ = _loc1_ + 1;
  154.          }
  155.       }
  156.    }
  157.    if(gameState == 0)
  158.    {
  159.       processFallBalls(dTime);
  160.       if(mc_grid.fillBallsCount > 0)
  161.       {
  162.          var scr = scrBall * mc_grid.fillBallsCount;
  163.          if(mc_grid.doubleScores > 0)
  164.          {
  165.             sndScoreX2orX4 = true;
  166.             scr *= 2 * mc_grid.doubleScores;
  167.          }
  168.          scores += scr;
  169.          txtScores = scores;
  170.          if(mc_grid.bonusJumpUp > 0)
  171.          {
  172.             _loc1_ = 0;
  173.             while(_loc1_ < mc_grid.bonusJumpUp)
  174.             {
  175.                if(arcadeGame)
  176.                {
  177.                   mc_grid.jumpUpWithoutPusher();
  178.                }
  179.                else
  180.                {
  181.                   mc_grid.jumpUp();
  182.                }
  183.                _loc1_ = _loc1_ + 1;
  184.             }
  185.          }
  186.          if(arcadeGame)
  187.          {
  188.             mc_ind.addValue(mc_grid.fillBallsCount);
  189.             if(mc_ind.isFull())
  190.             {
  191.                mc_grid.fallAllBalls();
  192.                win();
  193.             }
  194.          }
  195.          correctAllColors();
  196.       }
  197.       if(mc_grid.fallBallsCount + mc_grid.fillBallsCount > 4)
  198.       {
  199.          mc_yeti.toCool();
  200.       }
  201.       mc_grid.fillBallsCount = 0;
  202.       mc_grid.fallBallsCount = 0;
  203.       mc_grid.doubleScores = 0;
  204.       mc_grid.bonusJumpUp = 0;
  205.       if(overFlag)
  206.       {
  207.          if(!timeCounter.process(dTime))
  208.          {
  209.             mc_msg.btn._visible = true;
  210.             var fallBalls = false;
  211.             var str;
  212.             for(str in mc_fall)
  213.             {
  214.                fallBalls = true;
  215.                break;
  216.             }
  217.             if(!fallBalls)
  218.             {
  219.                gameState = 2;
  220.             }
  221.          }
  222.       }
  223.       if(winFlag)
  224.       {
  225.          if(!timeCounter.process(dTime))
  226.          {
  227.             var fallBalls = false;
  228.             var str;
  229.             for(str in mc_fall)
  230.             {
  231.                fallBalls = true;
  232.                break;
  233.             }
  234.             if(!fallBalls)
  235.             {
  236.                mc_gun.disable();
  237.                mc_pusher._visible = false;
  238.                if(level < 10)
  239.                {
  240.                   mc_msg.gotoAndStop("stWin");
  241.                   mc_msg.txtLevel = level + 1;
  242.                   _loc1_ = 1;
  243.                   while(_loc1_ <= 8)
  244.                   {
  245.                      mc_msg["a" + _loc1_]._visible = false;
  246.                      _loc1_ = _loc1_ + 1;
  247.                   }
  248.                   _loc1_ = 1;
  249.                   while(_loc1_ <= 8)
  250.                   {
  251.                      mc_msg["b" + _loc1_]._visible = false;
  252.                      _loc1_ = _loc1_ + 1;
  253.                   }
  254.                   gameState = 1;
  255.                }
  256.                else
  257.                {
  258.                   mc_msg.gotoAndStop("stCompleted");
  259.                   gameState = 3;
  260.                }
  261.             }
  262.          }
  263.       }
  264.       else
  265.       {
  266.          if(mc_move_ball._visible == false)
  267.          {
  268.             mc_gun.processTime(dTime);
  269.          }
  270.          if(mc_gun.autoShot())
  271.          {
  272.             myMouseDown();
  273.          }
  274.          mc_grid.process(dTime);
  275.          var r = shotSpeed * dTime / 1000;
  276.          n = Math.ceil(r / (CGrid.BALL_RAD / 2));
  277.          var ballStep = r / n;
  278.          var p;
  279.          var mc;
  280.          var levelStep = levelSpeed * dTime / 1000 / n;
  281.          _loc1_ = 0;
  282.          while(_loc1_ < n)
  283.          {
  284.             if(arcadeGame)
  285.             {
  286.                if(!mc_grid.bonusFreeze)
  287.                {
  288.                   mc_grid.moveDown(levelStep);
  289.                }
  290.             }
  291.             if(mc_move_ball._visible)
  292.             {
  293.                mc_move_ball.doStep(ballStep);
  294.                if((mc = mc_grid.checkForEnd(mc_move_ball)) != null)
  295.                {
  296.                   if(mc_grid.fillBallsCount > 0)
  297.                   {
  298.                      sndBubbleCollisionR = true;
  299.                   }
  300.                   else
  301.                   {
  302.                      sndBubbleCollision = true;
  303.                   }
  304.                   mc_move_ball.hide();
  305.                   if(!arcadeGame)
  306.                   {
  307.                      if(!mc_grid.bonusFreeze)
  308.                      {
  309.                         mc_ind.addValue(increaseK);
  310.                         if(mc_ind.isFull())
  311.                         {
  312.                            mc_grid.jumpDown();
  313.                            mc_ind.reset();
  314.                         }
  315.                      }
  316.                      var _loc3_ = true;
  317.                      var _loc2_ = undefined;
  318.                      _loc2_ = 0;
  319.                      while(_loc2_ < mc_grid.maxColorNum)
  320.                      {
  321.                         if(mc_grid.colorCountArr[_loc2_] > 0)
  322.                         {
  323.                            _loc3_ = false;
  324.                            break;
  325.                         }
  326.                         _loc2_ = _loc2_ + 1;
  327.                      }
  328.                      if(_loc3_)
  329.                      {
  330.                         win();
  331.                      }
  332.                   }
  333.                }
  334.             }
  335.             _loc1_ = _loc1_ + 1;
  336.          }
  337.          if(!overFlag)
  338.          {
  339.             if(arcadeGame && !winFlag)
  340.             {
  341.                mc_grid.checkAddRow();
  342.             }
  343.             if(redrawSight)
  344.             {
  345.                drawSight();
  346.             }
  347.             redrawSight = true;
  348.             if(mc_grid.getDownY() >= 350)
  349.             {
  350.                overFlag = true;
  351.                mc_gun.disable();
  352.                mc_trace._visible = false;
  353.                mc_msg.gotoAndStop("stOver");
  354.                mc_msg.btn._visible = false;
  355.                timeCounter.setTime(1000);
  356.                mc_gun.resetNumber();
  357.                mc_grid.fallAllBalls();
  358.             }
  359.             playSounds();
  360.          }
  361.       }
  362.    }
  363. }
  364. function myMouseMove()
  365. {
  366.    mc_gun.myMouseMove();
  367.    mc_gun.process(this._xmouse);
  368.    drawSight();
  369.    redrawSight = false;
  370. }
  371. function myMouseDown()
  372. {
  373.    if(winFlag || overFlag || gameState != 0)
  374.    {
  375.       return undefined;
  376.    }
  377.    if(mc_move_ball._visible == false)
  378.    {
  379.       startBall();
  380.       sndGunFire = true;
  381.    }
  382. }
  383. function myKeyDown()
  384. {
  385.    if(Key.isDown(32))
  386.    {
  387.       if(gameState == 1)
  388.       {
  389.          nextLevel();
  390.       }
  391.       else if(gameState == 2)
  392.       {
  393.          newGame();
  394.       }
  395.       else
  396.       {
  397.          myMouseDown();
  398.       }
  399.    }
  400. }
  401. function win()
  402. {
  403.    winFlag = true;
  404.    timeCounter.setTime(relaxTime);
  405.    mc_gun.resetNumber();
  406.    mc_trace._visible = false;
  407. }
  408. function processFallBalls(dTime)
  409. {
  410.    var _loc3_ = dTime;
  411.    var _loc1_ = undefined;
  412.    var _loc2_ = undefined;
  413.    for(_loc2_ in mc_fall)
  414.    {
  415.       _loc1_ = mc_fall[_loc2_];
  416.       _loc1_.process(_loc3_);
  417.       if(_loc1_._y > 400)
  418.       {
  419.          _loc1_.removeMovieClip();
  420.       }
  421.    }
  422. }
  423. function generateNextBall()
  424. {
  425.    var _loc3_ = undefined;
  426.    var _loc1_ = 0;
  427.    var _loc2_ = 0;
  428.    mc_gun.setColor(mc_next.colorNum);
  429.    mc_gun.setBonus(mc_next.bonusNum,mc_next.bonusColorNum);
  430.    _loc3_ = _root.myRandom(mc_grid.maxColorNum) + 1;
  431.    _loc3_ = correctColor(_loc3_);
  432.    if(mc_grid.maxBonusNum > 0)
  433.    {
  434.       shotBonusCount--;
  435.       if(shotBonusCount <= 0)
  436.       {
  437.          _loc1_ = _root.myRandom(mc_grid.maxBonusNum) + 1;
  438.          if(_loc1_ == prevBonusNum && _loc1_ != CBall.BONUS_COLOR)
  439.          {
  440.             if(Math.random() > 0.5)
  441.             {
  442.                _loc1_ = _loc1_ + 1;
  443.                if(_loc1_ > mc_grid.maxBonusNum)
  444.                {
  445.                   _loc1_ = 1;
  446.                }
  447.             }
  448.             else
  449.             {
  450.                _loc1_ = _loc1_ - 1;
  451.                if(_loc1_ < 1)
  452.                {
  453.                   _loc1_ = mc_grid.maxBonusNum;
  454.                }
  455.             }
  456.          }
  457.          if(_loc1_ == CBall.BONUS_COLOR)
  458.          {
  459.             _loc2_ = _root.myRandom(mc_grid.maxColorNum) + 1;
  460.             if(_loc3_ == _loc2_)
  461.             {
  462.                if(Math.random() > 0.5)
  463.                {
  464.                   _loc2_ = _loc2_ + 1;
  465.                   if(_loc2_ > mc_grid.maxColorNum)
  466.                   {
  467.                      _loc2_ = 1;
  468.                   }
  469.                }
  470.                else
  471.                {
  472.                   _loc2_ = _loc2_ - 1;
  473.                   if(_loc2_ < 1)
  474.                   {
  475.                      _loc2_ = mc_grid.maxColorNum;
  476.                   }
  477.                }
  478.             }
  479.          }
  480.          prevBonusNum = _loc1_;
  481.          shotBonusCount = _root.myRandom(maxShotBonusNum) + 1;
  482.       }
  483.    }
  484.    mc_next.setColor(_loc3_);
  485.    mc_next.setBonus(_loc1_,_loc2_);
  486. }
  487. function correctAllColors()
  488. {
  489.    var colorNum;
  490.    mc_gun.setColor(correctColor(mc_gun.colorNum));
  491.    mc_next.setColor(correctColor(mc_next.colorNum));
  492. }
  493. function correctColor(c)
  494. {
  495.    var _loc1_ = c;
  496.    if(arcadeGame == false)
  497.    {
  498.       var _loc2_ = undefined;
  499.       var _loc3_ = _root.myRandom(2);
  500.       _loc2_ = 0;
  501.       while(_loc2_ < mc_grid.maxColorNum)
  502.       {
  503.          if(mc_grid.colorCountArr[_loc1_ - 1] > 0)
  504.          {
  505.             break;
  506.          }
  507.          if(_loc3_ == 1)
  508.          {
  509.             _loc1_ = _loc1_ + 1;
  510.             if(_loc1_ > mc_grid.maxColorNum)
  511.             {
  512.                _loc1_ = 1;
  513.             }
  514.          }
  515.          else
  516.          {
  517.             _loc1_ = _loc1_ - 1;
  518.             if(_loc1_ < 1)
  519.             {
  520.                _loc1_ = mc_grid.maxColorNum;
  521.             }
  522.          }
  523.          _loc2_ = _loc2_ + 1;
  524.       }
  525.    }
  526.    return _loc1_;
  527. }
  528. function startBall()
  529. {
  530.    var _loc1_ = mc_gun._rotation / 180 * 3.141592653589793;
  531.    mc_move_ball.startMove(mc_gun._x,mc_gun._y,Math.sin(_loc1_),- Math.cos(_loc1_));
  532.    mc_move_ball.setColor(mc_gun.colorNum);
  533.    mc_move_ball.setBonus(mc_gun.bonusNum,mc_gun.bonusColorNum);
  534.    generateNextBall();
  535.    mc_gun.doShot();
  536. }
  537. function drawSight()
  538. {
  539.    var u = mc_gun._rotation / 180 * 3.141592653589793;
  540.    mc_grid.getFirstBall(mc_gun._x,mc_gun._y,Math.sin(u),- Math.cos(u));
  541.    mc_trace._x = mc_grid._x;
  542.    mc_trace._y = mc_grid._y;
  543.    var _loc1_ = undefined;
  544.    var n = mc_grid.points.length - 1;
  545.    var dx;
  546.    var dy;
  547.    var dr;
  548.    var x0;
  549.    var y0;
  550.    var step = 28;
  551.    var _loc2_ = undefined;
  552.    var m;
  553.    var count = 0;
  554.    var _loc3_ = step;
  555.    var mc;
  556.    var curTraceNum = 0;
  557.    _loc1_ = 1;
  558.    while(_loc1_ < n)
  559.    {
  560.       dx = mc_grid.points[_loc1_].x - (x0 = mc_grid.points[_loc1_ - 1].x);
  561.       dy = mc_grid.points[_loc1_].y - (y0 = mc_grid.points[_loc1_ - 1].y);
  562.       dr = Math.sqrt(dx * dx + dy * dy);
  563.       dx /= dr;
  564.       dy /= dr;
  565.       m = Math.floor((dr - _loc3_) / step);
  566.       _loc2_ = 0;
  567.       while(_loc2_ <= m)
  568.       {
  569.          mc = mc_trace["" + curTraceNum];
  570.          mc._visible = true;
  571.          curTraceNum++;
  572.          count++;
  573.          mc._x = x0 + dx * (_loc3_ + step * _loc2_);
  574.          mc._y = y0 + dy * (_loc3_ + step * _loc2_);
  575.          _loc2_ = _loc2_ + 1;
  576.       }
  577.       _loc3_ = dr - m * step - _loc3_;
  578.       _loc3_ = step - _loc3_;
  579.       _loc1_ = _loc1_ + 1;
  580.    }
  581.    _loc1_ = curTraceNum;
  582.    while(_loc1_ < sightBallCount)
  583.    {
  584.       mc_trace["" + _loc1_]._visible = false;
  585.       _loc1_ = _loc1_ + 1;
  586.    }
  587.    mc = mc_trace["" + sightBallCount];
  588.    mc._visible = true;
  589.    mc._x = mc_grid.points[n].x;
  590.    mc._y = mc_grid.points[n].y;
  591. }
  592. function playSounds()
  593. {
  594.    if(sndBubbleLevelUp)
  595.    {
  596.       playSnd("snd_BubbleLevelUp");
  597.       resetSounds();
  598.    }
  599.    else if(snd8bonus)
  600.    {
  601.       playSnd("snd_8bonus");
  602.       resetSounds();
  603.    }
  604.    else if(sndExplosionTNT)
  605.    {
  606.       playSnd("snd_ExplosionTNT");
  607.       resetSounds();
  608.    }
  609.    else if(sndFreeze)
  610.    {
  611.       playSnd("snd_Freeze");
  612.       resetSounds();
  613.    }
  614.    else if(sndScoreX2orX4)
  615.    {
  616.       playSnd("snd_ScoreX2orX4");
  617.       resetSounds();
  618.    }
  619.    else if(sndAutoFire)
  620.    {
  621.       playSnd("snd_AutoFire");
  622.       resetSounds();
  623.    }
  624.    else if(sndBubbleCollision)
  625.    {
  626.       playSnd("snd_BubbleCollision");
  627.       resetSounds();
  628.    }
  629.    else if(sndBubbleCollisionR)
  630.    {
  631.       playSnd("snd_BubbleCollisionR");
  632.       resetSounds();
  633.    }
  634.    else if(sndPingvin)
  635.    {
  636.       playSnd("snd_Pingvin");
  637.       resetSounds();
  638.    }
  639.    else if(sndGunFire)
  640.    {
  641.       playSnd("snd_GunFire");
  642.       resetSounds();
  643.    }
  644. }
  645. function resetSounds()
  646. {
  647.    snd8bonus = sndAutoFire = sndBubbleCollision = sndBubbleCollisionR = sndBubbleLevelUp = sndExplosionTNT = sndFreeze = sndGunFire = sndPingvin = sndScoreX2orX4 = false;
  648. }
  649. var author = "Galimov Ruslan rigal@mail.ru";
  650. var copyright = "www.sunnygames.com";
  651. getUrl("FSCommand:showmenu", "false");
  652. getUrl("FSCommand:trapallkeys", "true");
  653. var lastTimer;
  654. var level;
  655. var stopSoundFlag = false;
  656. _root.myRandom = function(n)
  657. {
  658.    return Math.floor((n - 0.000001) * Math.random());
  659. };
  660. var scores;
  661. var scrBall = 3;
  662. var gameState;
  663. var shotSpeed = 600;
  664. var levCRowCount = [7,7,7,7,8,8,8,9,9,9];
  665. var levARowCount = [6,6,7,6,7,7,6,7,7,7];
  666. var levAScores = [70,80,90,100,110,120,130,140,150,160];
  667. var levIncreaseK = [0.1001,0.12001,0.125001,0.143001,0.143001,0.143001,0.143001,0.143001,0.143001,0.143001];
  668. var levColorCount = [4,4,4,5,5,5,6,7,7,8];
  669. var levBonusCount = [0,1,2,3,4,5,6,7,8,8];
  670. var arcadeGame = false;
  671. var increaseK;
  672. var levelSpeed;
  673. var prevBonusNum;
  674. var shotBonusCount;
  675. var maxShotBonusNum = 10;
  676. var redrawSight = true;
  677. var sightBallCount = 70;
  678. var timeCounter = null;
  679. var winFlag;
  680. var overFlag;
  681. var relaxTime = 1500;
  682. var back1;
  683. var back2;
  684. var back3;
  685. var snd8bonus;
  686. var sndAutoFire;
  687. var sndBubbleCollision;
  688. var sndBubbleCollisionR;
  689. var sndBubbleLevelUp;
  690. var sndExplosionTNT;
  691. var sndFreeze;
  692. var sndGunFire;
  693. var sndPingvin;
  694. var sndScoreX2orX4;
  695.